﻿/*Задание 2. Проект симулятора работы компьютера
Реализуйте простую модель работы персонального компьютера в качестве многомодульного проекта. В компьютере несколько основных, условных компонент.
Центральный процессор (cpu) — должен иметь в себе функцию compute, которая складывает 8 чисел из буфера оперативной памяти (см. далее) и выводит результат в консоль.
Оперативная память (ram) — содержит буфер на 8 целых чисел, которые можно заполнить функцией write и считать функцией read.
Жёсткий диск (disk) — имеет в себе две функции, save и load. Функция save должна сохранить состояние 8 чисел из оперативной памяти на постоянный носитель в файл data.txt. Функция load — загрузить их с носителя в оперативную память.
Графическая карта (gpu) — выводит в консоль 8 чисел из оперативной памяти.
Клавиатура (kbd) — позволяет ввести 8 чисел и разместить их в оперативной памяти.
Каждая компонента должна располагаться в отдельном модуле, с отдельным заголовочным файлом. Основной модуль программы (main.cpp) должен считывать пользовательский ввод команды, которая соответствует отдельным функциям устройств: sum (вычисление суммы), save (сохранить в файл), load (загрузить из файла), input (ввести с клавиатуры), display (вывести на экран). Команда exit — выходит из программы.
Советы и рекомендации
Тщательно продумайте зависимости между модулями и теми файлами, которые должны быть включены в те или иные исходные файлы. Не забывайте про #pragma once в заголовочных файлах.
В заголовочных файлах модулей располагайте только объявления функций. Их определения должны быть уже в исходных файлах (.cpp).*/

#include <iostream>
#include <string>

#include "ram.h"
#include "kbd.h"
#include "gpu.h"
#include "cpu.h"
#include "disk.h"

int main()
{
    std::string command;

    while (command != "exit") {
        std::cout << "Enter command: sum, save, load, input, display, exit.\n";
        std::cin >> command;
        if (command == "input") {
            input();
        }
        if (command == "display") {
            display();
        }
        if (command == "sum") {
            computer();
        }
        if (command == "save") {
            save();
        }
        if (command == "load") {
            load();
        }
    }
}